package com.example.demo.Calss18_dongtaiguihua;

/**
 * @program: java_base
 * @description: class21 的题，
 * @author: zhouhongtao
 * @happyCreateTime: 2022/03/04 16:21
 */
public class Code03_CoinsWayNoLimitDemo {

    /**
     * arr[]不重复的面值   aim 目标金额
     * 相同面值金额 张数不限定
     * 问 有多少种组合 组成 aim
     */

    public static int process(int[] arr, int index, int rest) {
        if (index == arr.length) {// 没有面额 钱去尝试了
            return rest == 0 ? 1 : 0;
        }
        int ways = 0;
        for (int zhang = 0; zhang * arr[index] <= rest; zhang++) {
            ways = process(arr, index + 1, rest - arr[index] * zhang);
        }
        return ways;
    }

}
